System and method of managing video content streams

ABSTRACT

A system and method for managing video content streams are disclosed. The method includes receiving a plurality of multicast video streams at a server and buffering each video stream within a memory at the server. The method also includes generating a multicast video output at the server and a unicast video output at the server.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to systems and methods for managing video content streams.

BACKGROUND

In a typical analog type cable broadcast video service, channel switching is nearly instantaneous. In a digital cable system, the channel change time may be somewhat greater, because of the time to tune to the correct frequency and to extract the digital bit stream from the transport stream. In a typical system, the video program stream is identified, extracted and decoded for display. Channel change times for a satellite based Direct Broadcast System may be similar to the times for the digital cable system. The channel change time can be affected by the location of the channel in the transponder and the satellite. For example, if the next channel is on a separate transponder and on a separate satellite, then the switch matrix may have to make a transition between satellites before delivering the channel bit stream to the decoder and hence further increasing the channel change time.

Video content may be delivered over an Internet protocol (IP) network. In an IP network, each channel of a broadcast TV service may be delivered as an IP multicast stream. A set top box connected to the network can request the network for membership to a member of a multicast group/channel. After receiving a channel change request from a user, the set top box leaves the multicast group channel and joins a new multicast group channel associated with the channel change request. This process can take several seconds longer than the channel change times for other video delivery formats. This delay time between channel changes may result in a poor user experience.

Accordingly, there is a need for a system and method to provide fast channel change times for distributed video content.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is pointed out with particularity in the appended claims. However, other features are described in the following detailed description in conjunction with the accompanying drawings in which:

FIG. 1 is a diagram of an exemplary video content network;

FIG. 2 is a flow chart to illustrate an exemplary method of producing a multicast video content stream;

FIG. 3 is a flow chart to illustrate an exemplary method of managing both multicast and unicast video content streams;

FIG. 4 is a flow chart to illustrate an exemplary embodiment of a method of managing video content streams in the event of a server failure; and

FIG. 5 is a block diagram of a memory architecture including multicast and unicast video streams.

DETAILED DESCRIPTION OF THE DRAWINGS

A system and method for managing video content streams are disclosed. The method includes receiving a plurality of multicast video streams at a server and buffering each video stream within a memory at the server. The method also includes generating a multicast video output at the server and a unicast video output at the server.

In a particular embodiment, the method includes communicating the multicast video output from the server to a plurality of set top boxes. In another particular embodiment the unicast video output is communicated to a single set top box. In yet another particular embodiment, the single set top box is one of the plurality of set top boxes.

In a particular embodiment, the method includes receiving a channel request at the server from a set top box and generating unicast video output from a buffered multicast video stream associated with the requested channel. In another particular embodiment, the method includes communicating the unicast video output to the set top box. In another particular embodiment, the method includes joining the set top box to a multicast group associated with the requested channel. In yet another particular embodiment, a multicast video output associated with the multicast group is communicated to the set top box.

In a particular embodiment, the disclosed method includes sending a channel change request corresponding to a selected channel to a first server, receiving a unicast video output corresponding to the selected channel from the first server, and receiving a multicast video output corresponding to the new channel from the first server after receiving the unicast video output.

The disclosed system includes a server including a processor, a computer readable storage medium accessible by the processor, and a computer program embedded within the computer readable storage medium. In a particular embodiment, the computer program includes instructions to buffer a plurality of multicast video streams within a plurality of buffers, instructions to generate at least one multicast video output from one of the plurality multicast video streams and instructions to generate a unicast video output from the one of the plurality of multicast video streams.

In another particular embodiment, the disclosed system includes a set top box including a processor, a computer readable storage medium accessible by the processor, and a computer program embedded within the computer readable storage medium. The computer program includes instructions to receive a channel change request, instructions to transmit the channel change request to a first server, instructions to receive a unicast video output associated with a requested channel while the first server joins the set top box to a multicast group associated with the requested channel and instructions to receive a multicast video output from the first server after the first server joins the set top box to the multicast group.

Referring to FIG. 1, a particular embodiment of a video content network 100 is illustrated. The video content network includes a hardware encoder 102 that can be coupled to a first IP network 104. In addition, the first IP network 104 can be coupled to a content source 105 and an acquisition server 106. Further, the acquisition server 106 can be coupled to a second IP network 108 and to a third IP network 110. Moreover, the third IP network 110 can be coupled to a set top box 112. The set top box 112 can be coupled to a video display 114.

As illustrated, the second IP network 108 can be coupled to a unicast-multicast video (UMV) server 116. In addtion, the acquisition server 106 can provide a multicast video stream 118 to the UMV server 116 via the second IP network 108 and the third IP network 110. Furthermore, the UMV 116 server can provide a unicast video stream 120 and a multicast video stream 122 to the set top box 112.

In the particular illustrated embodiment, the set top box 112 includes an integrated modem 124, a processor 126, and a computer readable medium, such as a memory 128. Furthermore, the UMV server 116 can include a processor 130 coupled to a computer readable medium such as a memory 132.

It will be appreciated that the first IP network 104, the second IP network 108, and the third IP network 110 are depicted separately to illustrate the logical separation of different types of video traffic. In a particular embodiment, all of the traffic may be deployed on a single IP network.

In a particular embodiment, the hardware encoder 102 encodes a video content stream provided by the video content source 105. The video content source can include a multicast-capable Internet video service or other appropriate content source. As illustrated, the hardware encoder 102 can transmit the encoded video content stream to the acquisition server 106. Furthermore, the acquisition server 106 can process the video content stream by applying digital rights management (DRM) and generating a picture in picture (PIP) stream. In addition, the acquisition server can provide the multicast stream 118 based on the processed video content stream.

In a particular embodiment, the multicast content stream 118 is received at the UMV server 116. Further, the UMV server 116 can buffer the multicast video content stream 118. In addition, based on the buffered multicast video content stream 118, the UMV server 116 can provide the unicast video content stream 120 and a multicast video content stream 122. In an exemplary embodiment, the set top box 112 can receive the unicast video content stream 120 and the multicast video content stream 122 and display one or more of these streams at video display 114.

In a particular embodiment, the memory 128 of the set top box 112 is accessible to the processor 126. In addition, a computer program can be embedded in the memory 128. In a particular embodiment, the computer program includes instructions to receive a channel change request, instructions to transmit an output that includes the channel change request to a first server, such as the UMV server 116, and instructions to receive a unicast video output, such as the unicast video stream 120. In a particular embodiment, the unicast video output is associated with a requested channel. In another particular embodiment, the unicast video output is received while the server joins the set top box to a multicast group associated with the requested channel. In yet another particular embodiment, the computer program includes instructions to receive a multicast video output, such as the multicast video content stream 122, from the first server after the first server joins the set top box 112 to the multicast group.

In another particular embodiment, the computer program includes instructions to sense when the first server is out of service and instructions to receive a multicast video stream, such as the multicast video stream 118, from a second server, such as the acquisition server 106, in response to the first server being out of service. In a particular embodiment, instructions to sense when the first server has returned to service and instructions to receive the multicast video output from the first server in response to the first server being returned to service.

As illustrated in FIG. 1, the UMV server 116 can include the memory 132 that is accessible to the processor 130. Furthermore, a computer program can be embedded in the memory 132. In a particular embodiment, the computer program includes instructions to buffer a plurality of multicast video streams, such as multicast video content stream 118, within a plurality of buffers, instructions to generate at least one multicast video output, such as the multicast video stream 122 from the plurality of buffers, and instructions to generate at least one unicast video output, such as the unicast video stream 120 from the plurality of multicast video streams. In another particular embodiment, the computer program includes instructions to receive a channel change request from a set top box, such as the set top box 112. In yet another particular embodiment, the computer program includes instructions to generate a unicast video output from a buffered multicast video stream within the server. In a particular embodiment, the buffered multicast video stream corresponds to a requested channel. In another particular embodiment, the computer program includes instructions to join the set-top box 112 to a multicast group at the server 116. In a particular embodiment, the multicast group corresponds to the requested channel. In yet another particular embodiment, the computer program includes instructions to transmit a multicast video output associated with the multicast group to the set top box.

Referring to FIG. 2, an exemplary method of producing a multicast video content stream is illustrated. At step 200, a hardware encoder receives video content. Proceeding to step 202, the video content is encoded by the hardware encoder and, at step 204, the encoded content is transmitted to an acquisition server. Moving to step 206, the acquisition server applies Digital Rights Management to the video content and, at step 208, the acquisition server generates a picture-in-picture (PIP) stream. Proceeding to step 210, the acquisition server transmits a multicast video stream to a UMV server. The method then ends at step 212.

Referring to FIG. 3, an exemplary method of managing both multicast and unicast video content streams is illustrated. As illustrated, at step 300, a UMV server receives a plurality of multicast video streams from an acquisition server. Moving to step 302, the UMV server buffers the plurality of multicast video streams into memory. Next, at step 304, the UMV server generates a multicast video output and a unicast video output from a buffered multicast video stream. At step 306, the multicast video output for a current channel is communicated from the UMV server to a plurality of set top boxes.

Proceeding to step 308, a request for a channel from a set top box is received by the UMV server. At step 310, a unicast video output is generated within the UMV server. In a particular embodiment, the unicast video output is generated from a buffered multicast video stream for the requested channel. Moving to step 312, the unicast video output is communicated from the UMV server to a set top box. At step 314, the set top box leaves the current multicast group for the current channel. Proceeding to step 316, the UMV server joins the set top box to a multicast group associated with the requested channel. Moving to decision step 318, the UMV server determines if the set top box has been joined to the multicast group associated with the requested channel. If the join is not complete, at step 320 the UMV server continues communicating the unicast video output for the new channel to the set top box and returns to step 318.

Returning to decision step 318, if the UMV server determines that the join is complete, the method proceeds to step 330 and the UMV server communicates a multicast video output associated with the requested channel to the set top box. In a particular embodiment, the multicast video output is generated from the buffered multicast video stream. The method ends at step 332.

Referring to FIG. 4, an exemplary embodiment of a method of managing video content streams in the event of a server failure is illustrated. At step 400, a set top box receives a multicast video output for a current channel from a UMV server. Proceeding to decision step 402, the set top box determines if a channel change request has been received. If no channel change request has been received, the method returns to step 400. If a channel change request has been received, the set top box sends a channel change request to a UMV server at step 404. In a particular embodiment, the channel change request is sent in response to a channel selection at the set top box. Proceeding to step 405, the set top box receives from the UMV server a unicast video output for the new channel. At step 406, after the channel change operation is complete the set top box receives a multicast video output for the new channel. In a particular embodiment, the unicast video output and the multicast video output are both based on a buffered multicast video stream.

Moving to decision step 408, the set top box determines whether the UMV server has failed. If the UMV server has not failed, the method proceeds to step 410 and the UMV server determines if the set top box power is off. If the set top box power is on, the method returns to step 400. If the set top box power is off, the method proceeds to step 412 and ends.

Returning to step 408, if the UMV server has failed, the method proceeds to step 414 and the set top box communicates a request for a multicast video stream from the acquisition server. Moving to step 415, the set top box receives the multicast video output from the acquisition server.

Proceeding to decision step 416, the set top box detects whether the UMV server has returned to service. If the UMV server has returned to service, the method proceeds to step 400 and the set top box receives the multicast video output from the UMV server. If, at decision step 416, the UMV has not been returned to service, the method proceeds to step 418 and continues receiving the multicast video output from the acquisition server. The method then proceeds to decision step 420 and determines whether the power to the set top box is turned off. If the power at the set top box is turned on, the method returns to step 418 and continues to receive the multicast video from the acquisition server. If the power to the set top box is turned off at decision step 420, the method moves to step 412 and ends.

Referring to FIG. 5, an exemplary embodiment of a memory architecture including both multicast and unicast video content streams is illustrated. The architecture includes a buffered data stream 500. In a particular embodiment, the buffered data stream 500 receives a video input 502 from an acquisition server. Furthermore, the buffered data stream 500 includes a series of data packets 504. In addition, the buffered data stream 500 includes a fast channel change (FCC) and error correction buffer 506. The buffered data stream 512 further includes a multicast replication point 508 to produce a multicast video output 510. Moreover, the buffered data stream 500 includes an FCC unicast video output 512.

The buffered data stream 500 can be accessed at the multicast replication point 508 to provide the multicast video output 510 to a plurality of set top boxes. If a channel change request is received from set top box, the FCC unicast video output 512 can be accessed for the appropriate channel to provide a unicast video signal to the set top box.

The disclosed system and method can allow an improved user experience by providing rapid channel change in an IP multicast environment. The disclosed system and method provides a unicast video output from a server to a set top box in response to a channel change request. While the unicast video output is being received at the set top, box, the server joins the set top box to a multicast group associated with the channel request. Once the multicast group has been joined, the server stops communicating the unicast video output, and communicates a multicast video output associated with the multicast group to the set top box. This can result in faster channel change times and an improved user experience. For example, when a user selects a channel at a set top box, a unicast video output associated with the channel is broadcast to the set top box. The user is able to view the unicast video output while the set top box is joined to the multicast group. When the set top box has been joined to the multicast group, the user is receives a display of the multicast video output.

The above disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments which fall within the true spirit and scope of the present invention. Thus, to the maximum extent allowed by law, the scope of the present invention is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description. 

1. A method comprising: receiving, from an acquisition server, a plurality of video streams via multicast at a unicast/multicast video server; buffering each of the plurality of video streams within a buffer at the unicast/multicast video server; generating at least one multicast video output at the buffer of the unicast/multicast video server, wherein the buffer is associated with a requested channel, and wherein the at least one multicast video output corresponds to a multicast video stream generated from a multicast replication point of the buffer; generating at least one unicast video output at the buffer, the at least one unicast video output corresponding to a unicast video stream generated from the multicast video stream; sending the unicast video output for the requested channel from the unicast/multicast video server to a first set top box of a plurality of set top boxes, wherein the unicast/multicast video server continues sending the unicast video output for the requested channel to the first set top box until the first set top box has been joined to a multicast group associated with the requested channel; and sending the multicast video output to the first set top box after the first set top box has been joined to the multicast group.
 2. The method of claim 1, further comprising: sending the at least one multicast video output from the unicast/multicast video server to the plurality of set top boxes.
 3. The method of claim 1, wherein the memory comprises a fast channel change buffer operative to receive and buffer a video input, wherein the fast channel change buffer is operative to provide the multicast video output.
 4. The method of claim 3, wherein the fast channel change buffer further comprises the multicast replication point operative to provide the multicast video output associated with the multicast group to the plurality of set top boxes including the first set top box.
 5. The method of claim 4, wherein the multicast replication point is distinct from a unicast video output point of the fast channel change buffer.
 6. The method of claim 5, wherein the multicast replication point is at a beginning portion of the fast channel change buffer and the unicast video output point is at an end portion of the fast channel change buffer.
 7. The method of claim 3, wherein the UMV server is further configured to use the fast channel change buffer as an error correction buffer.
 8. A method comprising: sending a channel change request corresponding to a selected channel from a set top box to a first server; determining, at the set top box, whether the first server is in service; when the first server is in service, receiving a unicast video output from the first server at the set top box, the unicast video output corresponding to a unicast video stream for the selected channel, wherein the first server continues sending the unicast video output for the selected channel to the set top box until the set top box has been joined to a multicast group associated with the selected channel; when the first server is in service, receiving a multicast video output corresponding to the selected channel from the first server at the set top box after the set top box has been joined to the multicast group, wherein a buffer within the first server is associated with the selected channel, and wherein the unicast video output and the multicast video output are generated at the buffer; and when the first server is not in service, transmitting a request for one of a plurality of multicast video streams from the set top box to a remote acquisition server that provides a multicast video stream of the selected channel to the first server when the first server is in service; and detecting, at the set top box, that the first server has returned to service.
 9. The method of claim 8, wherein the unicast video output and the multicast video output are both based on a buffered multicast video stream.
 10. The method of claim 8, further comprising: when the set top box determines that the first server has returned to service, receiving the multicast video output from the first server at the set top box.
 11. A server comprising: a processor; a non-transitory computer readable storage medium accessible by the processor; and a computer program embedded within the non-transitory computer readable storage medium, the computer program comprising: instructions to receive a plurality of video streams via multicast from an acquisition server; instructions to buffer the plurality of video streams within a plurality of buffers to form a plurality of buffered multicast video streams; instructions to generate at least one multicast video output from at least a multicast replication point of at least one of the plurality of buffers; instructions to generate at least one unicast video stream from the at least one of the plurality of buffers, wherein the at least one of the plurality of buffers is associated with a requested channel; instructions to send the at least one unicast video stream from the server to a set top box for the requested channel; instructions to continue sending the at least one unicast video stream for the requested channel to the set top box until the set top box has been joined to a multicast group associated with the requested channel; and instructions to send the at least one multicast video output associated with the multicast group to the set top box, the at least one multicast video output generated from a buffered multicast video stream of the plurality of buffered multicast video streams associated with the requested channel.
 12. The server of claim 11, wherein the computer program further comprises instructions to receive a channel change request from the set top box.
 13. The server of claim 11, further comprising: a fast channel change buffer operative to receive and buffer a video input, wherein the fast channel change buffer is operative to provide the buffered multicast video stream.
 14. The server of claim 13, wherein the fast channel change buffer further comprises a multicast replication point operative to send the at least one multicast video output associated with the multicast group to a plurality of set top boxes including the set top box.
 15. A set top box, comprising: a processor; a non-transitory computer readable storage medium accessible to the processor; and a computer program embedded within the non-transitory computer readable storage medium, the computer program comprising: instructions to receive a channel change request corresponding to a requested channel; instructions to determine whether a first server is in service; instructions to transmit an output to the first server when the first server is in service, wherein the output includes the channel change request; instructions to continue receiving a unicast video output associated with the requested channel while the first server joins the set top box to a multicast group associated with the requested channel when the first server is in service; instructions to receive a multicast video output from the first server after the first server joins the set top box to the multicast group when the first server is in service, wherein a buffer within the first server is associated with the selected channel, and wherein the unicast video output and the multicast video output are generated at the buffer; instructions to transmit a request to receive the multicast video output from an acquisition server when the first server is not in service, wherein the remote acquisition server provides the multicast video output of the requested channel to the first channel when the first channel is in service; and instructions to sense when the first server has returned to service.
 16. The set top box of claim 15, wherein the computer program further comprises: instructions to receive the multicast video output from the first server in response to sensing that the first server has returned to service. 